package com.kly.smartbi.model.vo;

import cn.hutool.core.bean.BeanUtil;
import com.kly.smartbi.model.entity.Question;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 题目表
 *
 * @TableName question
 */
@Data
public class QuestionVO implements Serializable {
    /**
     * ID
     */
    private Long id;

    /**
     * 标题
     */
    private String title;

    /**
     * 内容
     */
    private String content;

    /**
     * 题目提交数
     */
    private Integer submitNum;

    /**
     * 题目通过数
     */
    private Integer acceptedNum;

    /**
     * 判题用例（JSON数组）
     */
    private String judgeCase;

    /**
     * 判题配置（JSON对象）
     */
    private String judgeConfig;

    /**
     * 点赞数
     */
    private Integer thumbNum;

    /**
     * 收藏数
     */
    private Integer favourNum;

    /**
     * 创建用户ID
     */
    private Long userId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 标签列表
     */
    private List<TagVO> tags;

    /**
     * 用户
     */
    private UserVO user;


    private static final long serialVersionUID = 1L;


    /**
     * obj to vo
     */
    public static QuestionVO objToVo(Question question) {
        if (question == null) {
            return null;
        }
        return BeanUtil.copyProperties(question, QuestionVO.class);
    }

    /**
     * vo to obj
     */
    public static Question voToObj(QuestionVO questionVO) {
        if (questionVO == null) {
            return null;
        }
        return BeanUtil.copyProperties(questionVO, Question.class);
    }

}